<!DOCTYPE HTML>
<html lang="zh">

<head>
    <meta charset="utf-8">
    <title>this</title>
    <style type="text/css" media="screen">
    body {
        width: 960px;
        margin: 0 auto;
        font: 18px/1.8em '微软雅黑';
    }

    h1 {
        color: green;
    }

    h2 {
        border-bottom: 2px solid green;
        line-height: 1.8em;
    }

    p {
        font-size: 20;
        padding: 5px 0;
    }

    p.content {
        font-weight: normal;
        padding-left: 2em;
        line-height: 1.5em;
        margin: 0;
    }
    </style>
</head>

<body>
    <h1>this</h1>
    <h2>全局语境中的this</h2>
    <p>在全局执行上下文中（在任何函数体外部）this 都指代全局对象。</p>
    <script>
    "use strice";
    console.log(this);
    console.log(this === window);
    </script>
    <h2>函数语境中的this</h2>
    <p>在函数内部，this的值取决于函数被调用的方式。</p>
    <p>在严格模式下，this将保持他进入执行上下文时的值，所以下面的this将会默认为undefined。</p>
    <script>
    function f1() {
        return this;
    }

    function f2() {
        "use strict"; // 这里是严格模式
        return this;
    }
    console.log(f1());
    console.log(f2());
    console.log(window.f2());
    </script>
</body>

</html>